package 归并算法;

import org.junit.Test;

/**
 * @Classname merge88
 * @Description TODO
 * @Date 2022/2/16 23:02
 * @Created by xjl
 */
public class merge88 {
    /**
     * @description 倒序的数组合并 从后面向前开始
     * @param: nums1
     * @param: m
     * @param: nums2
     * @param: n
     * @date: 2022/2/16 23:02
     * @return: void
     * @author: xjl
     */
    public void merge(int[] nums1, int m, int[] nums2, int n) {

        int index = m + n - 1;

        int l = m - 1;
        int r = n - 1;

        while (l >= 0 && r >= 0) {
            if (nums1[l] >= nums2[r]) {
                nums1[index--] = nums1[l--];
            } else {
                nums1[index--] = nums2[r--];
            }
        }
        while (l >= 0) {
            nums1[index--] = nums1[l--];
        }
        while (r >= 0) {
            nums1[index--] = nums2[r--];
        }
    }

    @Test
    public void test() {
        merge(new int[]{0}, 0, new int[]{1}, 1);
    }
}
